#include "animatedtabwidget.h"

AnimatedTabWidget::AnimatedTabWidget(QWidget *parent) : QTabWidget(parent) {
    connect(this, &QTabWidget::currentChanged, this, &AnimatedTabWidget::onTabChanged);
}

void AnimatedTabWidget::onTabChanged(int index)
{
        QWidget *currentWidget = widget(currentIndex());
        QWidget *nextWidget = widget(index);

        if (currentWidget && nextWidget) {
            // 创建动画
            QPropertyAnimation *animation = new QPropertyAnimation(nextWidget, "geometry");
            animation->setDuration(300); // 动画时长 300 毫秒

            // 设置动画起始和结束位置
            QRect startRect = nextWidget->geometry();
            startRect.moveLeft(width());  // 从右侧进入
            animation->setStartValue(startRect);
            animation->setEndValue(nextWidget->geometry());

            // 启动动画
            animation->start(QAbstractAnimation::DeleteWhenStopped);
        }

}
